Spark クラスター対応 PySpark の初期化
Chorus Data セクションで Spark コンピューティング クラスターを構成している場合は、PySpark を使用してテーブル データの読み取りと書き込みを行うことができます。このノートブックは、ワークフローのダウンストリーム オペレーターが使用できる Python 実行 オペレーターとして公開できます。
この方法は、中規模または大規模なデータセットに対しては他の方法よりもはるかに効率的であり、数 GB を超えるサイズのデータセットを読み取る場合に唯一実行可能なオプションです。
PySpark は、Jupyter Notebooks for Team Studio で初期化して使用できます。
- 手順
- 新しいノートブックを作成します。
- を選択します。

- 接続するデータ ソースの選択 ダイアログが表示されます。既存の Spark Cluster データ ソースを選択し、[データ ソースの追加] をクリックします。

- ノートブックに少しのコードが挿入されます。これにより、データ ソースとノートブック間の通信が容易になります。さらに多くのデータ ソースを読み込む場合は、手順 1 から手順 3 を繰り返します (Python 実行オペレーターへの入力の最大制限は 3 です)。このコードを実行するには、
shift+enterを押すか、[実行] をクリックします。これで、挿入されたコード内のコメントを参照して他のコマンドを実行できるようになります。
コマンドは、メソッドが正しく動作するために必要なパラメーターを備えたクラス
ChorusCommanderのインスタンス化されたオブジェクトであるオブジェクトccを使用します。生成されたコードは、cc.read_input_tableメソッド呼び出しで、sqlContext引数を初期化された Spark セッションに設定します。spark_options辞書引数を設定して、自動検出された JDBC ドライバー クラスに設定されたdriverプロパティを持つ追加のオプションを渡すことができます。 -
データセットを読み取るには、そのデータセット用に生成されたコード内の行と、対応する
spark_optionsを持つ_props変数のコメントを解除します。 -
ノートブックを Python 実行オペレーターとして使用するには、
use_input_substitutionパラメーターを[False]から[True]に変更し、読み込むデータセットのexecution_labelパラメータを追加します。execution_labelの値は文字列'1'から始まり、その後に、後続のデータセットに対して'2'、'3'が続く必要があります。詳細については、help(cc.read_input_table)を参照してください。 -
生成された
cc.read_input_tableメソッド呼び出しは、Spark データ フレームを返します。必要に応じて、データ フレームに対して変更、コピー、またはその他の操作を実行できます。 -
必要な出力 Spark データ フレームが作成されたら、
cc.write_output_tableを使用してターゲット テーブルに書き込みます。-
ダウンストリーム オペレーターでの出力の使用を有効にするには、
use_output_substitution=Trueを設定します。 -
ターゲットと同じ名前を持つ既存のテーブルを削除するには、
drop_if_existsパラメーターを[True]に設定します。 -
ドライバーの
read_input_tableと同様にspark_options引数を使用します。cc.datasource_name = '...'を必要な値に更新し、それに応じてspark_optionsのドライバーを更新することで、別のターゲット データ ソースに書き込むこともできます。
詳細については、
help(cc.write_output_table)を参照してください。 -
-
ノートブックをレガシー ワークフローで Python 実行オペレーターとして使用できるように、ノートブックを手動で実行してメタデータを決定します。